""" 
    2.在一个有序数组中，找>=某个数的最左侧的位置
    
    ###思路
    1.我们肯定要分到底，因为要查询完所有的数据
    2. 查询完所有数据是指满足条件的 >= 某个值的，我们需要记录下来，然后找到最左边的
    3. 当我们 找到 >= value 的位置时将这个位置记下来，再往左找，再找到在记下来，直到找完
"""
import random


def find_greater_left(arr: list, value: int,  start: int, end: int):
    """
        非递归
    """
    # 分到底
    value_index = -1
    while start <= end:
        index = int((start + end) / 2)
        if arr[index] < value:
            start = index + 1
        if arr[index] >= value:
            value_index = index
            end = index - 1
    return value_index


if __name__ == "__main__":
    arr = [1,2,3,4,5,6,7]
    index = find_greater_left(arr, 3,  0, len(arr) - 1)
    print(index)
